package dletic.File;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * File类常用的方法：
 * 
      *public String getAbsolutePath()：获取绝对路径
	 public String getPath() ：获取完整路径
	 *public String getName() ：获取名称
	 public String getParent()：获取上层文件目录路径。若无，返回null
	 *public long length() ：获取文件长度（即：字节数）。不能获取目录的长度。
	 *public long lastModified() ：获取最后一次的修改时间，毫秒值
	
	   public String[] list(); 获取指定目录下的所有文件或者文件目录的名称数组。
	   *public File[] listFiles() 这个方法是将目录下所有的文件创建一个File对象来使用
	   boolean renameTo(File dest):把文件重命名并移动到指定的路径下
 *
 */
public class Demo02 {

	public static void main(String[] args) {
		
		File file = new File("read.txt");
		
		//一、public String getAbsolutePath()
		System.out.println(file.getAbsolutePath()); // D:\中软学习\CodeSpace\day31\A.txt
		
		//二、public String getPath()
		System.out.println(file.getPath()); // A.txt
		
		//三、public String getName() ：获取名称
		System.out.println(file.getName()); // A.txt
		
		//四、public String getParent() 获取上层文件目录路径。若无，返回null
		System.out.println(file.getParent()); // null
		
		//五、public long length()  字节数
		System.out.println(file.length());  // 10
		
		//六、public long lastModified() ：获取最后一次的修改时间，毫秒值
		
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
		
		String format = sdf.format(new Date(file.lastModified()));
		
		System.out.println(format);
		
		
		System.out.println("--------------------------------------------");
		
		File file2 = new File("D:\\Java");
		
		// 七、public String[] list(); 获取指定目录下的所有文件或者文件目录的名称数组。
		String[] list = file2.list();
		
		for (String str : list) {
			
			System.out.println(str);
		}
		
		System.out.println("--------------------------------------------");
		//八、public File[] listFiles() 这个方法是将目录下所有的文件创建一个File对象来使用
		File[] listFiles = file2.listFiles();
		
		for(File files : listFiles){
			System.out.println(files);
		}
		
		//File类的重命名功能
		/**
		 * 九、boolean renameTo(File dest):把文件重命名并移动到指定的路径下  路径后面跟文件名
		 * 		文件名相同：文件移动到指定的路径下;
		 * 		文件名不同：文件移动到指定的路径下，并改名。
		 */
		
		File file3 = new File("A.txt");
		//指定移动到的路径和修改的名字  将A文件移动至demo包下 改名为T
		File file4 = new File("D:\\中软学习\\CodeSpace\\day31\\src\\com\\dletic\\demo\\T.txt");
		
		boolean renameTo = file3.renameTo(file4);
		System.out.println(renameTo);
		
		//再给移动回来，并重新命名。
		boolean renameTo2 = file4.renameTo(file3);
		System.out.println(renameTo2);

	}

}
